#ifndef __TABLE_SIZE__
#define __TABLE_SIZE__

// Default sizes when building for BMv2.
#define BNG_MAX_SUBSC 8192
#define BNG_MAX_NET_PER_SUBSC 4
#define BNG_MAX_SUBSC_NET BNG_MAX_NET_PER_SUBSC * BNG_MAX_SUBSC
#ifdef WITH_BNG
    #define PORT_VLAN_TABLE_SIZE BNG_MAX_SUBSC
#else
    #define PORT_VLAN_TABLE_SIZE 1024
#endif // WITH_BNG
#define FWD_CLASSIFIER_TABLE_SIZE 1024
#define BRIDGING_TABLE_SIZE 1024
#define MPLS_TABLE_SIZE 1024
#define ROUTING_V4_TABLE_SIZE 1024
#define ROUTING_V6_TABLE_SIZE 1024
#define ACL_TABLE_SIZE 1024
#define XCONNECT_NEXT_TABLE_SIZE 1024
#define NEXT_MPLS_TABLE_SIZE 1024
#define NEXT_VLAN_TABLE_SIZE 1024
#define SIMPLE_NEXT_TABLE_SIZE 1024
#define HASHED_NEXT_TABLE_SIZE 1024
#define HASHED_SELECTOR_MAX_GROUP_SIZE 16
#define HASHED_ACT_PROFILE_SIZE 32w1024
#define MULTICAST_NEXT_TABLE_SIZE 1024
#define EGRESS_VLAN_TABLE_SIZE 1024
#define QOS_CLASSIFIER_TABLE_SIZE 512
#define DSCP_REWRITER_TABLE_SIZE 512

#define SLICE_ID_WIDTH 4
#define TC_WIDTH 2
#define SLICE_TC_WIDTH (SLICE_ID_WIDTH + TC_WIDTH)

#endif
